import { cartList, addCart, setGoodsNum, setGoodsChecked, delGoods } from '_api'
import { Toast } from 'vant'

export default {
  namespaced: true,
  state: {
    // 购物车中的商品
    goodsList: [],
    // 购物车中商品件数
    goodsNumber: 0,
    // 购物车商品总价格
    goodsPrice: 0,
    // 是否操作
    handlemsg: true
  },
  mutations: {
    // 初始化购物车数据
    INIT_CART (state, { items, number, price }) {
      state.goodsList = items
      state.goodsNumber = number
      state.goodsPrice = price
    },
    HAN_DLE  (state, { handlemsg }) {
      state.handlemsg = handlemsg
    }
  },
  actions: {
    // 是否可操作
    HANDLE ({ commit }, params = {}) {
      commit('HAN_DLE', params)
    },
    // 购物车列表
    GET_CART_LIST ({ commit }, params = {}) {
      cartList(params).then(res => {
        if (res.data.code === 0) {
          console.log(res.data.data.items)
          commit('INIT_CART', {
            items: res.data.data.items,
            number: res.data.data.number,
            price: res.data.data.price
          })
        } else if (res.data.code === 700) {
          commit('HAN_DLE', {
            handlemsg: true
          })
        }
      })
    },
    // 加入购物车
    ADD_CART ({ commit }, params = {}) {
      addCart(params).then(res => {
        if (res.data.code === 0) {
          Toast('加入购物车成功')
          commit('INIT_CART', {
            items: res.data.data.items,
            number: res.data.data.number,
            price: res.data.data.price
          })
        }
      })
    },
    // 购物车步进器+-
    SET_GOOD_NUM ({ commit }, params = {}) {
      setGoodsNum(params).then((res) => {
        if (res.data.code === 0) {
          commit('INIT_CART', {
            items: res.data.data.items,
            number: res.data.data.number,
            price: res.data.data.price
          })
        }
      })
    },
    // 商品选中状态
    MUTATE_SELECTED ({ commit }, params = {}) {
      // 修改商品选中状态
      setGoodsChecked(params).then(res => {
        if (res.data.code === 0) {
          commit('INIT_CART', {
            items: res.data.data.items,
            number: res.data.data.number,
            price: res.data.data.price
          })
        }
      })
    },
    // 删除
    DELETE_ITEM ({ commit }, params = {}) {
      // 删除购物车商品
      delGoods(params).then(res => {
        if (res.data.code === 0) {
          commit('INIT_CART', {
            items: res.data.data.items,
            number: res.data.data.number,
            price: res.data.data.price
          })
        }
        if (res.data.code === 700) {
          commit('INIT_CART', {
            items: [],
            number: 0,
            price: 0
          })
          commit('HAN_DLE', {
            handlemsg: true
          })
        }
      })
    }
  }
}
